The problem can be found at the following link: Question Link
To convert a given column number to an Excel column name, I follow these steps:
- Create a vector
code
of characters to represent the alphabet, wherecode[i]
corresponds to the character for the column numberi
(0 to 25). - Initialize the first element
code[0]
as 'Z' because in Excel, the last column is 'Z'. - Iterate while
n
is greater than 0:- Append the character represented by
code[n % 26]
to the output stringout
. - If
n % 26
is 0, decrementn
by 1 to handle cases like column 26 ('Z'). - Divide
n
by 26 to move to the next column.
- Append the character represented by
- Reverse the
out
string to get the correct column name.
- Time Complexity:
O(log(n))
, The loop runs for the number of digits inn
in base26
, which is equivalent toO(log(n))
. - Auxiliary Space Complexity:
O(log(n))
, The space required to store the output stringout
is proportional to the number of digits inn
in base26
.
class Solution {
public:
string colName(long long int n) {
string out;
vector<char> code(26);
for (int i = 1; i < 26; ++i)
code[i] = (char)('A' + i - 1);
code[0] = 'Z';
while (n) {
out += code[n % 26];
if (n % 26 == 0)
--n;
n /= 26;
}
reverse(out.begin(), out.end());
return out;
}
};
For discussions, questions, or doubts related to this solution, please visit our discussion section. We welcome your input and aim to foster a collaborative learning environment.
If you find this solution helpful, consider supporting us by giving a ⭐ star
to the getlost01/gfg-potd repository.